import { defineStore } from 'pinia'

export const useUserStore = defineStore('user', {
  state: () => ({
    // token 从 localStorage 初始化，防止刷新后丢失
    token: localStorage.getItem('token') || '',

    // 用户信息
    userInfo: JSON.parse(localStorage.getItem('info')) || {}
  }),

  getters: {
    // 新增登录状态计算属性
    isLoggedIn: (state) => !!state.token
  },

  actions: {
    // 新增设置token方法
    async setToken(newToken) {
      this.token = newToken
      localStorage.setItem('token', newToken)
    },

    // 新增清除用户数据方法
    clearUserData() {
      this.token = ''
      this.userInfo = {}
      localStorage.removeItem('token')
    },

    // 设置用户信息
    setUserInfo(info) {
      this.userInfo = info
      localStorage.setItem('info', JSON.stringify(info))
    }
  }
})
